package com.swiot.biz.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.swiot.common.annotation.Excel;
import com.swiot.common.core.domain.BaseEntity;

import java.util.Arrays;
import java.util.Date;

/**
 * 模板数据对象 biz_template_data
 * 
 * @author kingdom
 * @date 2025-09-04
 */
public class DynamicTemplateData extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private String id;

    /** 数据备注描述 */
    @Excel(name = "数据备注描述")
    private String description;

    /** 模板ID */
    @Excel(name = "模板ID")
    private String templateId;

    
    /** 模板数据ID */
    @Excel(name = "模板数据ID")
    private String templateDataId;

    /** 公司ID */
    @Excel(name = "公司ID")
    private Long deptId;


    /** 报表日期 */
    @Excel(name = "报表日期")
    private String reportDate;

    /** 板块信息 */
    @Excel(name = "板块信息")
    private String segmentName;

    /** 字段行列 */
    private String[] fieldRowCol;

    /** 数据行列 */
    private String[] dataRowCol;


    /** 数据类型：00预算数据，01-12：月份数据，99：年度累计数据 */
    @Excel(name = "数据类型")
    private String dataType;

    /** 发布状态 */
    @Excel(name = "发布状态")
    private Long publishStatus;

    /** 删除标志 */
    private String delFlag;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedTime;

    /** 删除时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "删除时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deletedTime;

    /** 创建人用户ID */
    private String createdById;

    /** 最后更新人用户ID */
    private String updatedById;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createdBy;

    /** 最后更新人 */
    @Excel(name = "最后更新人")
    private String updatedBy;

    /** 表名（用于动态表操作） */
    private String tableName;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getTemplateId() {
        return templateId;
    }

    public void setTemplateId(String templateId) {
        this.templateId = templateId;
    }

    public String getTemplateDataId() {
        return templateDataId;
    }

    public void setTemplateDataId(String templateDataId) {
        this.templateDataId = templateDataId;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public String getReportDate() {
        return reportDate;
    }

    public void setReportDate(String reportDate) {
        this.reportDate = reportDate;
    }

    public String getSegmentName() {
        return segmentName;
    }

    public void setSegmentName(String segmentName) {
        this.segmentName = segmentName;
    }

    public String[] getFieldRowCol() {
        return fieldRowCol;
    }

    public void setFieldRowCol(String[] fieldRowCol) {
        this.fieldRowCol = fieldRowCol;
    }

    public String[] getDataRowCol() {
        return dataRowCol;
    }

    public void setDataRowCol(String[] dataRowCol) {
        this.dataRowCol = dataRowCol;
    }

    public String getDataType() {
        return dataType;
    }

    public void setDataType(String dataType) {
        this.dataType = dataType;
    }

    public Long getPublishStatus() {
        return publishStatus;
    }

    public void setPublishStatus(Long publishStatus) {
        this.publishStatus = publishStatus;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public Date getUpdatedTime() {
        return updatedTime;
    }

    public void setUpdatedTime(Date updatedTime) {
        this.updatedTime = updatedTime;
    }

    public Date getDeletedTime() {
        return deletedTime;
    }

    public void setDeletedTime(Date deletedTime) {
        this.deletedTime = deletedTime;
    }

    public String getCreatedById() {
        return createdById;
    }

    public void setCreatedById(String createdById) {
        this.createdById = createdById;
    }

    public String getUpdatedById() {
        return updatedById;
    }

    public void setUpdatedById(String updatedById) {
        this.updatedById = updatedById;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public String getUpdatedBy() {
        return updatedBy;
    }

    public void setUpdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
    }

    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    @Override
    public String toString() {
        return "DynamicTemplateData{" +
                "id='" + id + '\'' +
                ", description='" + description + '\'' +
                ", templateId='" + templateId + '\'' +
                ", templateDataId='" + templateDataId + '\'' +
                ", deptId=" + deptId +
                ", reportDate='" + reportDate + '\'' +
                ", segmentName='" + segmentName + '\'' +
                ", fieldRowCol=" + Arrays.toString(fieldRowCol) +
                ", dataRowCol=" + Arrays.toString(dataRowCol) +
                ", dataType='" + dataType + '\'' +
                ", publishStatus=" + publishStatus +
                ", delFlag='" + delFlag + '\'' +
                ", createdTime=" + createdTime +
                ", updatedTime=" + updatedTime +
                ", deletedTime=" + deletedTime +
                ", createdById='" + createdById + '\'' +
                ", updatedById='" + updatedById + '\'' +
                ", createdBy='" + createdBy + '\'' +
                ", updatedBy='" + updatedBy + '\'' +
                ", tableName='" + tableName + '\'' +
                '}';
    }
}
